Windows环境下编译pjsip |
您所在的位置:网站首页 › win10编译 server运行 › Windows环境下编译pjsip |
pjsip大体上是什么,更多内容可以参考pjsip背景组成等。项目需求在 Windows上部署运行,并开发客户端,客户端打算用MicroSip改造。MicroSip依赖pjsip。 首先编译pjsip 2-11-1。依赖ffmpeg和sdl2,好多案例openh264不是必须的,但是我调用本地摄像头需要依赖openh264, windows 版本需要单独编译,我会单独说一下。 下载pjsip源码Download PJSIP - Open Source SIP, Media, and NAT Traversal library 源码主要结构: lib: [PJPROJECT的lib库] pjlib:[基础框架库] pjlib-util:[辅助工具库] pjmedia:[开源的媒体栈] pjnath:[开源的NAT-T辅助库] pjsip:[开源的SIP协议栈] pjsip-apps[demo] 下载ffmpeg, 下载windows版本Download FFmpeg 下载sdl2Simple DirectMedia Layer - SDL version 2.0.18 (stable) 编译方法,官方其实写的非常详细了,下面列了支持的平台Windows 平台编译教程如下Getting-Started/Windows – pjsip Open source SIP, media, and NAT traversal stacks/libraries for smartphones 。具体就不展开了,直接列出需要修改的部分,需要修改的内容不仅限于如下的部分(其实就是指定库目录和包含目录,谁需要就给谁配一下) 进入指定目录../pjlib/include/pj/,创建config_site.h即可(VS必须手动创建),这个文件可以为空,为空是使用默认值。干脆把config_site_simple.h复制一份重命名为config_site.h参考配置 /*支持视频的参数*/ #define PJMEDIA_HAS_VIDEO 1 #define PJMEDIA_HAS_OPENH264_CODEC 1 #define PJMEDIA_HAS_LIBYUV 1 #define PJMEDIA_VIDEO_DEV_HAS_SDL 1 #define PJMEDIA_VIDEO_DEV_HAS_DSHOW 1 /*ffmpeg 支持*/ #define PJMEDIA_HAS_FFMPEG 1 /*如果希望调用摄像头信息,除了默认支持VP8,还需要支持H264,这个也是网上好多其他教程部分情况无法调用摄像头的原因*/ #define PJMEDIA_HAS_OPENH264_CODEC 1 //#define PJMEDIA_HAS_VPX_CODEC 1 //by default VP8 codec is enabled //#define PJMEDIA_HAS_VPX_CODEC_VP9 1 //enable VP9 codec 2. 我使用vs2019编译,需要把Windows SDK和平台工具集统一 3. 引入sdl2 和 ffmpeg 参考: 完成上述配置,实际编译过程依然会报错,错误信息基本是pjsystest 、pjsip_test等项目找不到依赖的静态库,其实这些项目和pjsip本身没多大关系,是一些辅助的项目,分别单独设置一下就可以了,或者从当前解决方案内移除就可以啦。不影响项目运行。 编译成功,可以运行pjsip-apps/bin/下的exe,效果如下 测试打电话和发视频主叫端: 被叫需要回复a, 以及回传一个,进行应答
可以看到Media 的信息包括: 只有语音没有视频:1 audio & 0 video 来自: from 打给:to 需要按a 接听,按h 拒绝接听 接听后需要回复一个100-600之间的任意整数。 然后就可以畅快通话了。 打视频电话需要先设置启用视频信息,双方都需要设置 vid enable ; 打开视频 vid acc autotx on ; 即使打开了视频,默认视频也不会自动开始传输。要修改该设置 vid acc autorx on ; 即使接收到了视频,默认也不会播放,要修改该设置 接听方接听后,需要回复 vid call tx on 1 // 打开视频发送 这时候就可以看到视频了 重新打电话 接听放协商回复
这时候看到Media: 1 audio & 1 video ,实测不回复也会开启视频传输 看下视频效果 发起方: 接听方: 本地测试,还可以,感觉略微有延迟。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |